package com.example.tests;

import org.testng.annotations.Test;

import com.example.fw.Folders;
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;

public class TestFolderCreation extends TestBase {

@Test
public void testFolderCreation() {
	String folder = "newfolder";
	Folders oldFolers = app.getFolderHelper().getFolders();
	app.getFolderHelper().createFolder(folder);
	Folders newFolers = app.getFolderHelper().getFolders();
	assertThat(newFolers, equalTo(oldFolers.withAdded(folder)));
}

@Test
public void testVariousFoldersCreation() {
	String folder1 = "newfolder1";
	String folder2 = "newfolder2";
	Folders oldFolers = app.getFolderHelper().getFolders();
	assertThat(app.getFolderHelper().createFolder(folder1), is(nullValue()));
	Folders newFolders = app.getFolderHelper().getFolders();
	assertThat(newFolders, equalTo(oldFolers.withAdded(folder1)));
	assertThat(app.getFolderHelper().createFolder(folder2), is(nullValue()));
	Folders newFolders2 = app.getFolderHelper().getFolders();
	assertThat(newFolders2, equalTo(newFolders.withAdded(folder2)));
}

@Test
public void testFoldersWithSameNameCreation() {
	String folder = "newfolder3";
	Folders oldFolers = app.getFolderHelper().getFolders();
	assertThat(app.getFolderHelper().createFolder(folder), is(nullValue()));
	Folders newFolders = app.getFolderHelper().getFolders();
	assertThat(newFolders, equalTo(oldFolers.withAdded(folder)));
	assertThat(app.getFolderHelper().createFolder(folder), containsString("Duplicated folder name"));
	Folders newFolders2 = app.getFolderHelper().getFolders();
	assertThat(newFolders2, equalTo(newFolders));
}
}
